package com.czp.menu.util;

import java.util.ArrayList;
import java.util.List;

import com.czp.menu.model.Menu;

/**
 * 【描 述】：菜单工具类
 * 【环 境】：J2SE 1.7
 * @author   柴志鹏	CHAIZP@GMAIL.COM
 * @version  version 1.0
 * @since    2014-5-23
 */
public class MenuUtil {
	/** 
	 * 【描 述】：根据根pid递归所有子节点数据并返回指定格式数据
	 * @param 根数据PID
	 * @param 全部菜单结果集
	 * @return 指定格式集合
	 */
	public static List<Menu> getChildrenByPid(String id, List<Menu> menus) {
		// 声明空结果集
		List<Menu> rs = new ArrayList<Menu>();
		
		for(int i = 0; i < menus.size(); i++) {
			// 判断是否为根节点
			if(id.equals(menus.get(i).getPid())) {
				// 判断是否有子节点
				if("1".equals(menus.get(i).getLeaf())) {
					// 将子节点数据格式化后返回
					menus.get(i).setChildren(getChildrenByPid(menus.get(i).getId(), menus));
				}
				// 格式化后数据添加到集合中
				rs.add(menus.get(i));
				//menus.remove(i--);//有BUG待解决
			}
		}
		return rs;
	}
}
